package com.heima.article.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.model.article.dtos.ArticleCommentDto;
import com.heima.model.article.dtos.ArticleDto;
import com.heima.model.article.dtos.ArticleHomeDto;
import com.heima.model.article.dtos.ArticleInfoDto;
import com.heima.model.article.pojos.ApArticle;
import com.heima.model.common.dtos.PageResponseResult;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.mess.ArticleVisitStreamMess;
import com.heima.model.wemedia.dtos.StatisticsDto;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * <p>
 * 文章信息表，存储已发布的文章 服务类
 * </p>
 *
 * @author itheima
 */
public interface ApArticleService extends IService<ApArticle> {

    /**
     * 加载文章列表
     * @param type
     * @param dto
     * @return
     */
    public ResponseResult load(Short type,ArticleHomeDto dto);

    /**
     * 保存app端相关文章（feign）
     * @param dto
     * @return
     */
    ResponseResult saveAppArticle(ArticleDto dto);

    /**
     * 加载文章详情 数据回显
     * @param dto
     * @return
     */
    public ResponseResult loadArticleBehavior(ArticleInfoDto dto);

    /**
     * 分页查询 图文统计
     * @param dto
     * @return
     */
    PageResponseResult newPage(StatisticsDto dto);

    /**
     * 查询文章评论统计
     * @param dto
     * @return
     */
    public PageResponseResult findNewsComments(ArticleCommentDto dto);

    /**
     * 图文统计统计
     * @param wmUserId
     * @param beginDate
     * @param endDate
     * @return
     */
    ResponseResult queryLikesAndConllections(Integer wmUserId, String beginDate, String endDate);

    /**
     * 加载文章首页
     * @param loadtypeLoadMore
     * @param dto
     * @param firstPage  是否是首页
     * @return
     */
    ResponseResult loadV2(Short loadtypeLoadMore, ArticleHomeDto dto, boolean firstPage);


    /**
     * 更新数据库的点赞量等，更新redis中的分值
     * @param mess
     */
    public void updateScore(ArticleVisitStreamMess mess);
}
